/**
 * 
 */
package com.cplsystems.incidencias.business;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Transient;

@Entity
@Table
public class Persona implements Serializable {

	private static final long serialVersionUID = 1334909317661584425L;
	private Long idPersona;
	private EstadoCivil estadocivil;
	private Sexo sexo;
	private Boolean dadoDeBajo;
	private Boolean asignacionClavePersonal;
	private String imagen;

	private String apellidoPaterno = "";
	private String apellidoMaterno = "";
	private String nombre = "";
	private String nombreCompleto = "";

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column
	public Long getIdPersona() {
		return idPersona;
	}

	public void setIdPersona(Long idPersona) {
		this.idPersona = idPersona;
	}

	@OneToOne
	@JoinColumn(name = "estadocivil")
	public EstadoCivil getEstadocivil() {
		return estadocivil;
	}

	public void setEstadocivil(EstadoCivil estadocivil) {
		this.estadocivil = estadocivil;
	}

	@OneToOne
	@JoinColumn(name = "sexo")
	public Sexo getSexo() {
		return sexo;
	}

	public void setSexo(Sexo sexo) {
		this.sexo = sexo;
	}

	@Column
	public Boolean getDadoDeBajo() {
		return dadoDeBajo;
	}

	public void setDadoDeBajo(Boolean dadoDeBajo) {
		this.dadoDeBajo = dadoDeBajo;
	}

	@Column
	public Boolean getAsignacionClavePersonal() {
		return asignacionClavePersonal;
	}

	public void setAsignacionClavePersonal(Boolean asignacionClavePersonal) {
		this.asignacionClavePersonal = asignacionClavePersonal;
	}

	@Column
	public String getImagen() {
		return imagen;
	}

	public void setImagen(String imagen) {
		this.imagen = imagen;
	}

	@Transient
	public String getApellidoPaterno() {
		return apellidoPaterno;
	}

	public void setApellidoPaterno(String apellidoPaterno) {
		this.apellidoPaterno = apellidoPaterno;
	}

	@Transient
	public String getApellidoMaterno() {
		return apellidoMaterno;
	}

	public void setApellidoMaterno(String apellidoMaterno) {
		this.apellidoMaterno = apellidoMaterno;
	}

	@Transient
	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	@Transient
	public String getNombreCompleto() {
		if (nombre.isEmpty() &&  apellidoPaterno.isEmpty() && apellidoPaterno.isEmpty()) {
			return nombreCompleto;
		} else {
			return nombreCompleto = nombre + " " + apellidoPaterno + " "
					+ apellidoMaterno;	
		}
		
	}

	public void setNombreCompleto(String nombreCompleto) {
		this.nombreCompleto = nombreCompleto;
	}
	

}
